import java.lang.*;

public class Arithmetic {//加密和解密算法

    public String encrpty(String m, int k) {
        StringBuilder result = new StringBuilder();
        char[] mi = m.toCharArray();
        int n = mi.length;
        for (int c : mi) {
            if (c >= 'a' && c <= 'z') {
                c += k; // 移动key%26位
                if (c < 'a')
                    c += 26; // 向左超界
                if (c > 'z')
                    c -= 26; // 向右超界
            }
            // 如果字符串中的某个字符是大写字母
            else if (c >= 'A' && c <= 'Z') {
                c += k; // 移动key%26位
                if (c < 'A')
                    c += 26;// 同上
                if (c > 'Z')
                    c -= 26;// 同上
            }
            result.append((char) c);
        }
        return result.toString();
    }

    public String decrypt(String m, int k) {
        StringBuilder result = new StringBuilder();
        char[] mi = m.toCharArray();
        int n = mi.length;
        for (int c : mi) {
            if (c >= 'a' && c <= 'z') {
                c -= k; // 向前移动k位
                if (c < 'a')
                    c += 26; // 向左超界
                if (c > 'z')
                    c -= 26; // 向右超界
            }
            // 如果字符串中的某个字符是大写字母
            else if (c >= 'A' && c <= 'Z') {
                c -= k; // 向前移动3位
                if (c < 'A')
                    c += 26;// 同上
                if (c > 'Z')
                    c -= 26;// 同上
            }
            result.append((char) c);
        }
        return result.toString();
    }

}
